package com.lvy.hczn.front.system.domain.business;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.lvy.hczn.front.common.core.domain.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 分拣(降级/报损等)记录
 *
 * @author yw
 * @date 2022-07-27 21:19:35
 **/
@Data
@TableName("spu_sort_record")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "分拣(降级/报损等)记录")
public class SpuSortRecord extends BaseModel<SpuSortRecord> {

    @ApiModelProperty(value = "编码")
    private String recodeCode;

    @ApiModelProperty(value = "原料")
    private String spuId;

    @ApiModelProperty(value = "货箱编号")
    private String boxCode;

    @ApiModelProperty(value = "0、wms物品报损；1、从平台同步的临期报损")
    private Integer status;

    @ApiModelProperty(value = "数据类型")
    private String dataType;

    @ApiModelProperty(value = "类型(0、降级;1、报损)")
    private String type;

    @ApiModelProperty(value = "sku")
    private String skuCode;

    @ApiModelProperty(value = "规格")
    private String specCode;

    @ApiModelProperty(value = "供应商")
    private String supplierCode;

    @ApiModelProperty(value = "生产商")
    private String producerId;

    @ApiModelProperty(value = "N个标准的降级批次（降级的N个标准生成一个批次）")
    private String recordBatch;

    @ApiModelProperty(value = "降级到的等级")
    private String spuGradeId;

    @ApiModelProperty(value = "原先等级")
    private String reSpuGradeId;

    @ApiModelProperty(value = "降级标准")
    private String spuGradeStandardId;

    @ApiModelProperty(value = "降级人员")
    private String clientId;

    @ApiModelProperty(value = "数量")
    private Integer quantity;

    @ApiModelProperty(value = "重量")
    private BigDecimal weight;

    @ApiModelProperty(value = "体积")
    private BigDecimal volume;

    @ApiModelProperty(value = "重量单位")
    private String unit;

    @ApiModelProperty(value = "保质期")
    private Integer warrantyDate;

    @ApiModelProperty(value = "生产日期")
    private LocalDateTime productDate;

    @ApiModelProperty(value = "处理状态（0、未处理，1、已处理）")
    private Boolean treated;

    @ApiModelProperty(value = "降级标准列表")
    @TableField(exist = false)
    private List<String> standardList;

    @ApiModelProperty(value = "原料编号")
    @TableField(exist = false)
    private String spuCode;

    @ApiModelProperty(value = "原料名称")
    @TableField(exist = false)
    private String spuName;

    @ApiModelProperty(value = "退货销售订单明细ID")
    @TableField(exist = false)
    private String saleOrderDetailId;

    @ApiModelProperty(value = "商品所属温区")
    @TableField(exist = false)
    private String temperatureZone;

    @ApiModelProperty(value = "过期时间：生产日期+保质期天数")
    @TableField(exist = false)
    private LocalDate shelfLife;

    @ApiModelProperty(value = "是否大件0:否,1:是")
    @TableField(exist = false)
    private Integer bigProduct;
}
